﻿// owner 蒋家伟

#pragma once
#include "Office_home.h"

namespace jsdk
{
    // Excel 操作基类
    class OFFICE_EXPORT IExcelWriter
    {
    public:
        virtual ~IExcelWriter() {}

        // 创建一个通过excel 文件地址创建一个Excel对象
        static OwnerPtr<IExcelWriter> create(const std::wstring& fileName);

        /// \ 创建一个Sheet表格
        /// \ in sheetName 表格名称
        /// \ return 成功返回对应的下表
        virtual uint64_t addSheet(const std::wstring& sheetName) = 0;

        /// \ 删除一个Sheet表格
        /// \ in sheetName 表格名称
        /// \ return 是否删除成功
        virtual bool deleteSheet(const std::wstring& sheetName) = 0;

        /// \ brief  打开表格单元
        /// \ in sheetIndex 表格下表，第几个表格
        virtual bool openSheet(uint32_t sheetIndex) = 0;

        /// \ brief 设置一个单元格内容
        /// \ note : 设置当前打开sheet
        virtual bool setCellData(uint32_t row, uint32_t col, const std::wstring& valueStr) = 0;

        /// \ brief 保存
        virtual bool save() const = 0;
    };
}